home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / eiffel / smalleif.97 / se.t / SmallEiffel / bin_c / compile_to_c14.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-02  |  37.9 KB  |  1,664 lines

  1. /* ANSI C code generated by SmallEiffel. */
  2. /*
  3. -- SmallEiffel  -- Release (- 0.97)    --      FRANCE
  4. -- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
  5. -- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
  6. -- CRIN (Centre de Recherche en Informatique de Nancy)
  7. -- FRANCE 
  8. */
  9. #include "compile_to_c.h"
  10. T0 * rT92name(T92 *C,int a1){
  11. T0 * R=NULL;
  12. R=((T94*)rT96item((T96*)(C)->_flat_list,a1))->_name;
  13. return R;
  14. }
  15. T0 * rT92type(T92 *C,int a1){
  16. T0 * R=NULL;
  17. /*IF*/if (((int)(C)->_run_types)) {
  18. R=rT106item((T106*)(C)->_run_types,a1);
  19. }
  20. else {
  21. R=((T94*)rT96item((T96*)(C)->_flat_list,a1))->_type;
  22. }
  23. /*FI*/return R;
  24. }
  25. T0 * rT92to_runnable(T92 *C,T0 * a1){
  26. T0 * R=NULL;
  27. T0 * _t2=NULL;
  28. T0 * _t1=NULL;
  29. int _i=0;
  30. /*IF*/if (!((C)->_run_types)) {
  31. R=(T0 *)C;
  32. {T106 *n=((T106*)new(106));
  33. rT106make(n,1,((T96*)(C)->_flat_list)->_upper);
  34. C->_run_types=(T0 *)n;}
  35. _i=1;
  36. while (!((_i)>(((T106*)(C)->_run_types)->_upper))) {
  37. _t1=((T94*)rT96item((T96*)(C)->_flat_list,_i))->_type;
  38. _t2=XrT58to_runnable(_t1,a1);
  39. /*IF*/if (!(_t2)) {
  40. rT92error(XrT58start_position(_t1),(T0 *)ms514);
  41. }
  42. else {
  43. rT106put((T106*)(C)->_run_types,_t2,_i);
  44. }
  45. /*FI*/_i=(_i)+(1);
  46. }
  47. }
  48. else {
  49. R=rT92to_runnable((T92*)rT92clone(C,(T0 *)C),a1);
  50. }
  51. /*FI*/return R;
  52. }
  53. int rT92count(T92 *C){
  54. int R=0;
  55. R=((T96*)(C)->_flat_list)->_upper;
  56. return R;
  57. }
  58. void rT92error(/*C*/T0 * a1,T0* a2){
  59. /*UT*/(T45*)oRBC27eh;
  60. rT45add_position(a1);
  61. rT45error((T45*)oRBC27eh,a2);
  62. }
  63. int rT92rank_of(T92 *C,T0 * a1){
  64. int R=0;
  65. T0* _ns=NULL;
  66. _ns=XrT49to_string(a1);
  67. R=rT92count(C);
  68. while (!(((R)==(0))||(rT7is_equal((T7*)_ns,XrT49to_string(rT92name(C,R)))))) {
  69. R=(R)-(1);
  70. }
  71. return R;
  72. }
  73. void rT92super_make(T92 *C,T0 * a1,T0* a2){
  74. int _actual_count=0;
  75. int _ifl=0;
  76. int _il=0;
  77. C->_start_position=a1;
  78. C->_list=a2;
  79. _il=1;
  80. while (!((_il)>(XrT143upper((C)->_list)))) {
  81. _actual_count=(_actual_count)+(XrT95count(XrT143item((C)->_list,_il)));
  82. _il=(_il)+(1);
  83. }
  84. {T96 *n=((T96*)new(96));
  85. rT96make(n,1,_actual_count);
  86. C->_flat_list=(T0 *)n;}
  87. _ifl=1;
  88. _il=1;
  89. while (!((_il)>(XrT143upper((C)->_list)))) {
  90. _ifl=XrT95put_into(XrT143item((C)->_list,_il),(C)->_flat_list,_ifl);
  91. _il=(_il)+(1);
  92. }
  93. }
  94. T0* rT92clone(T92 *C,T0* a1){
  95. T0* R=NULL;
  96. /*IF*/if (((int)a1)) {
  97. R=(T0 *)new(a1->id);
  98. AF_1
  99. XrT28copy(R,a1);
  100. AF_0
  101. }
  102. /*FI*/return R;
  103. }
  104. void rT92compile_to_c_in(T92 *C,T0* a1){
  105. int _i=0;
  106. _i=1;
  107. while (!((_i)>(rT92count(C)))) {
  108. XrT58c_type_in(XrT58run_type(rT92type(C,_i)),a1);
  109. rT7append((T7*)a1,(T0 *)ms1364);
  110. rT2append_in(_i,a1);
  111. _i=(_i)+(1);
  112. /*IF*/if ((_i)<=(rT92count(C))) {
  113. rT7extend((T7*)a1,'\54');
  114. }
  115. /*FI*/}
  116. }
  117. void rT92copy(T92 *C,T0 * a1){
  118. C->_start_position=((T92*)a1)->_start_position;
  119. C->_list=((T92*)a1)->_list;
  120. C->_flat_list=((T92*)a1)->_flat_list;
  121. }
  122. int rT92is_a_in(T92 *C,T0 * a1,T0 * a2){
  123. int R=0;
  124. T0 * _t2=NULL;
  125. T0 * _t1=NULL;
  126. int _i=0;
  127. int _ne=0;
  128. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  129. /*IF*/if ((rT92count((T92*)a1))!=(rT92count(C))) {
  130. /*UT*/(T45*)oRBC27eh;
  131. rT45add_position(((T92*)a1)->_start_position);
  132. rT92error((C)->_start_position,(T0 *)ms492);
  133. }
  134. /*FI*//*IF*/if (((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))==(0)) {
  135. R=1;
  136. _i=1;
  137. while (!((!(R))||((_i)>(((T96*)(C)->_flat_list)->_upper)))) {
  138. _t1=((T94*)rT96item((T96*)(C)->_flat_list,_i))->_type;
  139. _t2=((T94*)rT96item((T96*)((T92*)a1)->_flat_list,_i))->_type;
  140. /*IF*/if (!(XrT58is_a_in(_t1,_t2,a2))) {
  141. R=0;
  142. rT45print_as_error((T45*)oRBC27eh);
  143. /*UT*/(T45*)oRBC27eh;
  144. rT45add_position(XrT58start_position(_t1));
  145. /*UT*/(T45*)oRBC27eh;
  146. rT45add_position(XrT58start_position(_t2));
  147. /*UT*/(T45*)oRBC27eh;
  148. rT45append((T0 *)ms493);
  149. /*UT*/(T45*)oRBC27eh;
  150. rT45append(XrT58run_time_mark(((T260*)a2)->_current_type));
  151. rT45error((T45*)oRBC27eh,(T0 *)ms38);
  152. }
  153. /*FI*/_i=(_i)+(1);
  154. }
  155. }
  156. /*FI*/return R;
  157. }
  158. void rT92make(T92 *C,T0 * a1,T0* a2){
  159. int _rank=0;
  160. int _i=0;
  161. T0 * _tla=NULL;
  162. T0 * _an=NULL;
  163. T0 * _tlf=NULL;
  164. T0 * _d1=NULL;
  165. rT92super_make(C,a1,a2);
  166. _i=1;
  167. while (!((_i)>(((T96*)(C)->_flat_list)->_upper))) {
  168. _d1=rT96item((T96*)(C)->_flat_list,_i);
  169. _tlf=((T94*)_d1)->_type;
  170. if ((int)_tlf) switch (((T0 *)_tlf)->id) {
  171. case 99: 
  172. break;
  173. default:
  174. _tlf = NULL;
  175. };/*IF*/if (((int)_tlf)) {
  176. _rank=rT92rank_of(C,((T99*)_tlf)->_like_what);
  177. /*IF*/if ((_rank)==(_i)) {
  178. rT92error(((T99*)_tlf)->_start_position,(T0 *)ms262);
  179. }
  180.  else if ((_rank)>(0)) {
  181. {T88 *n=((T88*)new(88));
  182. rT88make(n,XrT67start_position(((T99*)_tlf)->_like_what),XrT67to_string(((T99*)_tlf)->_like_what),_rank);
  183. _an=(T0 *)n;}
  184. {T98 *n=((T98*)new(98));
  185. rT98make(n,((T99*)_tlf)->_start_position,_an);
  186. _tla=(T0 *)n;}
  187. /*(IRF3*/(((T94*)_d1)->_type)=(_tla);
  188. /*)*/}
  189. /*FI*/}
  190. /*FI*/_i=(_i)+(1);
  191. }
  192. }
  193. void rT85fatal_error(/*C*/T0* a1){
  194. rT45fatal_error((T45*)oRBC27eh,a1);
  195. }
  196. int rT85count(T85 *C){
  197. int R=0;
  198. R=((T86*)(C)->_list)->_upper;
  199. return R;
  200. }
  201. T0 * rT85item(T85 *C,int a1){
  202. T0 * R=NULL;
  203. R=rT86item((T86*)(C)->_list,a1);
  204. return R;
  205. }
  206. int rT85index_of(T85 *C,T0 * a1){
  207. int R=0;
  208. T0* _to_string=NULL;
  209. _to_string=((T48*)a1)->_to_string;
  210. R=((T86*)(C)->_list)->_upper;
  211. while (!(((R)==(0))||(((T0 *)_to_string)==((T0 *)((T48*)((T84*)rT86item((T86*)(C)->_list,R))->_name)->_to_string)))) {
  212. R=(R)-(1);
  213. }
  214. return R;
  215. }
  216. void rT85copy(T85 *C,T0 * a1){
  217. /*IF*//*AF*//*AE*/
  218. memcpy(C,a1,s[C->id]);
  219. /*FI*/}
  220. void rT85make(T85 *C,T0 * a1,T0* a2){
  221. T0 * _fga=NULL;
  222. int _i=0;
  223. int _rank=0;
  224. C->_start_position=a1;
  225. C->_list=a2;
  226. _i=((T86*)a2)->_upper;
  227. while (!((_i)==(0))) {
  228. _fga=rT86item((T86*)a2,_i);
  229. _rank=rT85index_of(C,((T84*)_fga)->_name);
  230. /*IF*/if ((_rank)!=(_i)) {
  231. /*UT*/(T45*)oRBC27eh;
  232. rT45add_position(rT84start_position((T84*)rT86item((T86*)a2,_rank)));
  233. /*UT*/(T45*)oRBC27eh;
  234. rT45add_position(rT84start_position((T84*)_fga));
  235. rT85fatal_error((T0 *)ms221);
  236. }
  237. /*FI*/_i=(_i)-(1);
  238. }
  239. }
  240. T0 * rT84start_position(T84 *C){
  241. T0 * R=NULL;
  242. R=((T48*)(C)->_name)->_start_position;
  243. return R;
  244. }
  245. void rT84copy(T84 *C,T0 * a1){
  246. /*IF*//*AF*//*AE*/
  247. memcpy(C,a1,s[C->id]);
  248. /*FI*/}
  249. void rT84make(T84 *C,T0 * a1,T0 * a2){
  250. C->_name=a1;
  251. C->_constraint=a2;
  252. }
  253. int rT67static_value(T67 *C){
  254. int R=0;
  255. R=(C)->_static_value_mem;
  256. return R;
  257. }
  258. int rT67same_as(T67 *C,T0 * a1){
  259. int R=0;
  260. R=rT7is_equal((T7*)rT67to_key(C),XrT49to_key(a1));
  261. return R;
  262. }
  263. void rT67fatal_error(/*C*/T0* a1){
  264. rT45fatal_error((T45*)oRBC27eh,a1);
  265. }
  266. T0 * rT67to_runnable(T67 *C,T0 * a1){
  267. T0 * R=NULL;
  268. T0 * _rf=NULL;
  269. /*IF*/if (!((C)->_current_type)) {
  270. C->_current_type=a1;
  271. _rf=rT260get_feature((T260*)XrT58run_class((C)->_current_type),(T0 *)C);
  272. /*IF*/if (!(_rf)) {
  273. rT67error((C)->_start_position,(T0 *)ms1110);
  274. }
  275.  else if (XrT261is_writable(_rf)) {
  276. C->_result_type=XrT261result_type(_rf);
  277. }
  278. else {
  279. /*UT*/(T45*)oRBC27eh;
  280. rT45add_position(XrT261start_position(_rf));
  281. rT67error((C)->_start_position,(T0 *)ms1111);
  282. }
  283. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  284. R=(T0 *)C;
  285. }
  286. else {
  287. rT67error((C)->_start_position,(T0 *)ms1112);
  288. }
  289. /*FI*/}
  290.  else if (((T0 *)a1)==((T0 *)(C)->_current_type)) {
  291. R=(T0 *)C;
  292. }
  293.  else if (rT7is_equal((T7*)XrT58run_time_mark(a1),XrT58run_time_mark((C)->_current_type))) {
  294. rT67error((C)->_start_position,(T0 *)ms1113);
  295. /*UT*/(T45*)oRBC27eh;
  296. rT45add_type(a1,(T0 *)ms1114);
  297. /*UT*/(T45*)oRBC27eh;
  298. rT45add_type((C)->_current_type,(T0 *)ms1115);
  299. rT45print_as_error((T45*)oRBC27eh);
  300. }
  301. else {
  302. {T67 *n=((T67*)new(67));
  303. rT67make(n,(C)->_to_string,(C)->_start_position);
  304. R=(T0 *)n;}
  305. R=XrT67to_runnable(R,a1);
  306. }
  307. /*FI*/return R;
  308. }
  309. void rT67error(/*C*/T0 * a1,T0* a2){
  310. /*UT*/(T45*)oRBC27eh;
  311. rT45add_position(a1);
  312. rT45error((T45*)oRBC27eh,a2);
  313. }
  314. T0 * rT67add_comment(T67 *C,T0 * a1){
  315. T0 * R=NULL;
  316. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  317. R=(T0 *)C;
  318. }
  319. else {
  320. {T220 *n=((T220*)new(220));
  321. rT220make(n,(T0 *)C,a1);
  322. R=(T0 *)n;}}
  323. /*FI*/return R;
  324. }
  325. int rT67is_equal(T67 *C,T0 * a1){
  326. int R=0;
  327. R=rT67standard_is_equal(C,a1);
  328. return R;
  329. }
  330. T0* rT67to_key(T67 *C){
  331. T0* R=NULL;
  332. R=(C)->_to_string;
  333. return R;
  334. }
  335. int rT67can_be_dropped(T67 *C){
  336. int R=0;
  337. /*UT*/(T45*)oRBC27eh;
  338. rT45add_position((C)->_start_position);
  339. rT67fatal_error((T0 *)ms1520);
  340. return R;
  341. }
  342. void rT67mapping_c_aux(T67 *C,T0* a1){
  343. int _i=0;
  344. _i=1;
  345. while (!((_i)>(((T7*)(C)->_to_string)->_count))) {
  346. rT2append_in(((unsigned char)rT7item((T7*)(C)->_to_string,_i)),a1);
  347. _i=(_i)+(1);
  348. }
  349. }
  350. void rT67mapping_c_in(T67 *C,T0* a1){
  351. /*IF*/if (/*(IRF4*/0/*)*/) {
  352. /*IF*/if (rT7is_equal((T7*)(T0 *)ms102,(C)->_to_string)) {
  353. rT7append((T7*)a1,(C)->_to_string);
  354. }
  355. else {
  356. rT7append((T7*)a1,(T0 *)ms798);
  357. rT67mapping_c_aux(C,a1);
  358. }
  359. /*FI*/}
  360.  else if (/*(IRF4*/0/*)*/) {
  361. rT7append((T7*)a1,(T0 *)ms799);
  362. rT67mapping_c_aux(C,a1);
  363. }
  364. else {
  365. rT7append((T7*)a1,(C)->_to_string);
  366. }
  367. /*FI*/}
  368. T0*oRBC67mapping_c_mem;
  369. void rT67mapping_c(T67 *C){
  370. /*(IRF3*/(((T7*)oRBC67mapping_c_mem)->_count)=(0);
  371. /*)*/rT67mapping_c_in(C,oRBC67mapping_c_mem);
  372. rT40put_string((T40*)oRBC27cpp,oRBC67mapping_c_mem);
  373. }
  374. void rT67compile_to_c(T67 *C){
  375. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1156);
  376. rT40put_string((T40*)oRBC27cpp,(C)->_to_string);
  377. }
  378. int rT67to_integer(T67 *C){
  379. int R=0;
  380. rT67error((C)->_start_position,(T0 *)ms175);
  381. return R;
  382. }
  383. T0* rT67to_err_msg(T67 *C){
  384. T0* R=NULL;
  385. R=rT67to_err2(C);
  386. rT7prepend((T7*)R,(T0 *)ms1432);
  387. return R;
  388. }
  389. T0* rT67to_err1(T67 *C){
  390. T0* R=NULL;
  391. {T7 *n=((T7*)new(7));
  392. rT7copy(n,(C)->_to_string);
  393. R=(T0 *)n;}
  394. rT7precede((T7*)R,'\140');
  395. rT7extend((T7*)R,'\47');
  396. return R;
  397. }
  398. T0* rT67to_err2(T67 *C){
  399. T0* R=NULL;
  400. R=rT67to_err1(C);
  401. /*IF*/if (((int)(C)->_start_position)) {
  402. rT7append((T7*)R,(T0 *)ms462);
  403. rT7append((T7*)R,rT46to_err_msg((T46*)(C)->_start_position));
  404. rT7append((T7*)R,(T0 *)ms466);
  405. }
  406. /*FI*/return R;
  407. }
  408. T0* rT67to_err_msg2(T67 *C){
  409. T0* R=NULL;
  410. R=rT67to_err2(C);
  411. return R;
  412. }
  413. T0 * rT67run_feature(T67 *C,T0 * a1){
  414. T0 * R=NULL;
  415. R=rT260get_feature((T260*)XrT58run_class(a1),(T0 *)C);
  416. return R;
  417. }
  418. int rT67standard_is_equal(T67 *C,T0 * a1){
  419. int R=0;
  420. /*IF*//*AF*/if (((T0 *)a1)==((T0 *)C)) {
  421. R=1;
  422. }
  423. else {
  424. R=!memcmp(C,a1,s[C->id]);
  425. }
  426. /*FI*/return R;
  427. }
  428. T0 * rT67written_in(T67 *C){
  429. T0 * R=NULL;
  430. T0 * _sp=NULL;
  431. _sp=(C)->_start_position;
  432. /*IF*/if (((int)_sp)) {
  433. R=((T46*)_sp)->_base_class_name;
  434. }
  435. /*FI*/return R;
  436. }
  437. void rT67copy(T67 *C,T0 * a1){
  438. /*IF*//*AF*//*AE*/
  439. memcpy(C,a1,s[C->id]);
  440. /*FI*/}
  441. int rT67is_a(T67 *C,T0 * a1){
  442. int R=0;
  443. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  444. /*IF*/if (!(R)) {
  445. /*UT*/(T45*)oRBC27eh;
  446. rT45add_position((C)->_start_position);
  447. rT67error(XrT68start_position(a1),(T0 *)ms1261);
  448. }
  449. /*FI*/return R;
  450. }
  451. void rT67make(T67 *C,T0* a1,T0 * a2){
  452. C->_to_string=a1;
  453. C->_start_position=a2;
  454. }
  455. int rT128count(T128 *C){
  456. int R=0;
  457. R=((T129*)(C)->_list)->_upper;
  458. return R;
  459. }
  460. void rT128error(/*C*/T0 * a1,T0* a2){
  461. /*UT*/(T45*)oRBC27eh;
  462. rT45add_position(a1);
  463. rT45error((T45*)oRBC27eh,a2);
  464. }
  465. T0 * rT128item(T128 *C,int a1){
  466. T0 * R=NULL;
  467. R=rT129item((T129*)(C)->_list,a1);
  468. return R;
  469. }
  470. int rT128index_of(T128 *C,T0 * a1){
  471. int R=0;
  472. T0* _fn_key=NULL;
  473. _fn_key=XrT67to_key(a1);
  474. R=1;
  475. while (!(((R)>(rT128count(C)))||(rT7is_equal((T7*)_fn_key,XrT67to_key(rT128item(C,R)))))) {
  476. R=(R)+(1);
  477. }
  478. return R;
  479. }
  480. void rT128copy(T128 *C,T0 * a1){
  481. /*IF*//*AF*//*AE*/
  482. memcpy(C,a1,s[C->id]);
  483. /*FI*/}
  484. int rT128has(T128 *C,T0 * a1){
  485. int R=0;
  486. R=(rT128index_of(C,a1))<=(((T129*)(C)->_list)->_upper);
  487. return R;
  488. }
  489. void rT128make(T128 *C,T0* a1){
  490. int _i2=0;
  491. int _i=0;
  492. C->_list=a1;
  493. _i=((T129*)a1)->_upper;
  494. while (!((_i)==(0))) {
  495. _i2=rT128index_of(C,rT129item((T129*)a1,_i));
  496. /*IF*/if ((_i2)!=(_i)) {
  497. /*UT*/(T45*)oRBC27eh;
  498. rT45add_position(XrT67start_position(rT129item((T129*)a1,_i2)));
  499. rT128error(XrT67start_position(rT129item((T129*)a1,_i)),(T0 *)ms241);
  500. }
  501. /*FI*/_i=(_i)-(1);
  502. }
  503. }
  504. void rT135add_into(T135 *C,T0 * a1){
  505. T0 * _f=NULL;
  506. int _i=0;
  507. /*IF*/if ((((int)(C)->_list))&&(!(XrT63empty((C)->_list)))) {
  508. _i=1;
  509. while (!((_i)>(XrT63upper((C)->_list)))) {
  510. _f=XrT63item((C)->_list,_i);
  511. XrT62set_clients(_f,(C)->_clients);
  512. XrT62add_into(_f,a1);
  513. _i=(_i)+(1);
  514. }
  515. }
  516. /*FI*/}
  517. void rT135copy(T135 *C,T0 * a1){
  518. /*IF*//*AF*//*AE*/
  519. memcpy(C,a1,s[C->id]);
  520. /*FI*/}
  521. void rT135make(T135 *C,T0 * a1,T0 * a2,T0* a3){
  522. C->_clients=a1;
  523. C->_comment=a2;
  524. C->_list=a3;
  525. }
  526. void rT259c_define(T259 *C){
  527. int _id=0;
  528. _id=XrT58id((C)->_current_type);
  529. rT7copy((T7*)oRBC259cdm,(T0 *)ms768);
  530. rT2append_in(_id,oRBC259cdm);
  531. rT7append((T7*)oRBC259cdm,(T0 *)ms769);
  532. rT2append_in(_id,oRBC259cdm);
  533. rT7append((T7*)oRBC259cdm,(T0 *)ms770);
  534. rT2append_in(_id,oRBC259cdm);
  535. rT7append((T7*)oRBC259cdm,(T0 *)ms771);
  536. rT40put_c_heading((T40*)oRBC27cpp,oRBC259cdm);
  537. rT40swap_on_c((T40*)oRBC27cpp);
  538. rT7copy((T7*)oRBC259cdm,(T0 *)ms772);
  539. rT2append_in(_id,oRBC259cdm);
  540. rT7append((T7*)oRBC259cdm,(T0 *)ms773);
  541. rT40put_string((T40*)oRBC27cpp,oRBC259cdm);
  542. rT259compile_to_c(C);
  543. rT40put_string((T40*)oRBC27cpp,(T0 *)ms785);
  544. }
  545. void rT259add_into(T259 *C,T0* a1){
  546. T0 * _a=NULL;
  547. int _i=0;
  548. /*IF*/if (((int)(C)->_list)) {
  549. _i=1;
  550. while (!((_i)>(((T158*)(C)->_list)->_upper))) {
  551. _a=rT158item((T158*)(C)->_list,_i);
  552. /*IF*/if (!(rT158fast_has((T158*)a1,_a))) {
  553. rT158add_last((T158*)a1,_a);
  554. }
  555. /*FI*/_i=(_i)+(1);
  556. }
  557. }
  558. /*FI*/}
  559. void rT259from_runnable(T259 *C,T0* a1){
  560. C->_list=a1;
  561. C->_current_type=((T64*)rT158item((T158*)(C)->_list,1))->_current_type;
  562. }
  563. T0*oRBC259cdm;
  564. void rT259compile_to_c(T259 *C){
  565. int _i=0;
  566. /*(IRF3*/(((T40*)oRBC27cpp)->_check_assertion_mode)=(/*(IRF4*/(T0 *)ms774/*)*/);
  567. /*)*//*IF*/if (((int)(C)->_list)) {
  568. rT40put_string((T40*)oRBC27cpp,(T0 *)ms775);
  569. rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms774/*)*/);
  570. rT40put_string((T40*)oRBC27cpp,(T0 *)ms776);
  571. rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms774/*)*/);
  572. rT40put_string((T40*)oRBC27cpp,(T0 *)ms777);
  573. _i=1;
  574. while (!((_i)>(((T158*)(C)->_list)->_upper))) {
  575. rT64compile_to_c((T64*)rT158item((T158*)(C)->_list,_i));
  576. _i=(_i)+(1);
  577. }
  578. rT40put_string((T40*)oRBC27cpp,(T0 *)ms783);
  579. rT40put_string((T40*)oRBC27cpp,/*(IRF4*/(T0 *)ms774/*)*/);
  580. rT40put_string((T40*)oRBC27cpp,(T0 *)ms784);
  581. }
  582. /*FI*/}
  583. void rT259copy(T259 *C,T0 * a1){
  584. /*IF*//*AF*//*AE*/
  585. memcpy(C,a1,s[C->id]);
  586. /*FI*/}
  587. void rT259make(T259 *C,T0 * a1,T0 * a2,T0* a3){
  588. C->_start_position=a1;
  589. C->_header_comment=a2;
  590. C->_list=a3;
  591. }
  592. int rT66same_as(T66 *C,T0 * a1){
  593. int R=0;
  594. R=rT7is_equal((T7*)(C)->_to_key,XrT49to_key(a1));
  595. return R;
  596. }
  597. int rT66static_value(T66 *C){
  598. int R=0;
  599. R=(C)->_static_value_mem;
  600. return R;
  601. }
  602. void rT66fatal_error(/*C*/T0* a1){
  603. rT45fatal_error((T45*)oRBC27eh,a1);
  604. }
  605. T0 * rT66to_runnable(T66 *C,T0 * a1){
  606. T0 * R=NULL;
  607. T0 * _rf=NULL;
  608. /*IF*/if (!((C)->_current_type)) {
  609. C->_current_type=a1;
  610. _rf=rT260get_feature((T260*)XrT58run_class((C)->_current_type),(T0 *)C);
  611. /*IF*/if (!(_rf)) {
  612. rT66error((C)->_start_position,(T0 *)ms1110);
  613. }
  614.  else if (XrT261is_writable(_rf)) {
  615. C->_result_type=XrT261result_type(_rf);
  616. }
  617. else {
  618. /*UT*/(T45*)oRBC27eh;
  619. rT45add_position(XrT261start_position(_rf));
  620. rT66error((C)->_start_position,(T0 *)ms1111);
  621. }
  622. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  623. R=(T0 *)C;
  624. }
  625. else {
  626. rT66error((C)->_start_position,(T0 *)ms1112);
  627. }
  628. /*FI*/}
  629.  else if (((T0 *)a1)==((T0 *)(C)->_current_type)) {
  630. R=(T0 *)C;
  631. }
  632.  else if (rT7is_equal((T7*)XrT58run_time_mark(a1),XrT58run_time_mark((C)->_current_type))) {
  633. rT66error((C)->_start_position,(T0 *)ms1113);
  634. /*UT*/(T45*)oRBC27eh;
  635. rT45add_type(a1,(T0 *)ms1114);
  636. /*UT*/(T45*)oRBC27eh;
  637. rT45add_type((C)->_current_type,(T0 *)ms1115);
  638. rT45print_as_error((T45*)oRBC27eh);
  639. }
  640. else {
  641. {T66 *n=((T66*)new(66));
  642. rT66make(n,(C)->_to_string,(C)->_start_position);
  643. R=(T0 *)n;}
  644. R=rT66to_runnable((T66*)R,a1);
  645. }
  646. /*FI*/return R;
  647. }
  648. void rT66error(/*C*/T0 * a1,T0* a2){
  649. /*UT*/(T45*)oRBC27eh;
  650. rT45add_position(a1);
  651. rT45error((T45*)oRBC27eh,a2);
  652. }
  653. T0 * rT66add_comment(T66 *C,T0 * a1){
  654. T0 * R=NULL;
  655. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  656. R=(T0 *)C;
  657. }
  658. else {
  659. {T220 *n=((T220*)new(220));
  660. rT220make(n,(T0 *)C,a1);
  661. R=(T0 *)n;}}
  662. /*FI*/return R;
  663. }
  664. int rT66is_equal(T66 *C,T0 * a1){
  665. int R=0;
  666. R=rT66standard_is_equal(C,a1);
  667. return R;
  668. }
  669. T0* rT66clone(T66 *C,T0* a1){
  670. T0* R=NULL;
  671. /*IF*/if (((int)a1)) {
  672. R=(T0 *)new(a1->id);
  673. AF_1
  674. XrT28copy(R,a1);
  675. AF_0
  676. }
  677. /*FI*/return R;
  678. }
  679. int rT66can_be_dropped(T66 *C){
  680. int R=0;
  681. /*UT*/(T45*)oRBC27eh;
  682. rT45add_position((C)->_start_position);
  683. rT66fatal_error((T0 *)ms1520);
  684. return R;
  685. }
  686. void rT66mapping_c(T66 *C){
  687. /*(IRF3*/(((T7*)oRBC67mapping_c_mem)->_count)=(0);
  688. /*)*/rT66mapping_c_in(C,oRBC67mapping_c_mem);
  689. rT40put_string((T40*)oRBC27cpp,oRBC67mapping_c_mem);
  690. }
  691. void rT66mapping_c_in(T66 *C,T0* a1){
  692. /*IF*//*AF*/{/*AT*/rT7append((T7*)a1,(T0 *)ms799);
  693. rT66mapping_c_aux(C,a1);
  694. }
  695. /*FI*/}
  696. void rT66mapping_c_aux(T66 *C,T0* a1){
  697. int _i=0;
  698. _i=1;
  699. while (!((_i)>(((T7*)(C)->_to_string)->_count))) {
  700. rT2append_in(((unsigned char)rT7item((T7*)(C)->_to_string,_i)),a1);
  701. _i=(_i)+(1);
  702. }
  703. }
  704. void rT66compile_to_c(T66 *C){
  705. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1156);
  706. rT40put_string((T40*)oRBC27cpp,(C)->_to_string);
  707. }
  708. int rT66to_integer(T66 *C){
  709. int R=0;
  710. rT66error((C)->_start_position,(T0 *)ms175);
  711. return R;
  712. }
  713. T0* rT66to_err_msg2(T66 *C){
  714. T0* R=NULL;
  715. R=rT66to_err2(C);
  716. return R;
  717. }
  718. T0* rT66to_err1(T66 *C){
  719. T0* R=NULL;
  720. {T7 *n=((T7*)new(7));
  721. rT7copy(n,(C)->_to_string);
  722. R=(T0 *)n;}
  723. rT7precede((T7*)R,'\140');
  724. rT7extend((T7*)R,'\47');
  725. return R;
  726. }
  727. T0* rT66to_err2(T66 *C){
  728. T0* R=NULL;
  729. R=rT66to_err1(C);
  730. /*IF*/if (((int)(C)->_start_position)) {
  731. rT7append((T7*)R,(T0 *)ms462);
  732. rT7append((T7*)R,rT46to_err_msg((T46*)(C)->_start_position));
  733. rT7append((T7*)R,(T0 *)ms466);
  734. }
  735. /*FI*/return R;
  736. }
  737. T0* rT66to_err_msg(T66 *C){
  738. T0* R=NULL;
  739. R=rT66to_err2(C);
  740. rT7prepend((T7*)R,(T0 *)ms1432);
  741. return R;
  742. }
  743. T0 * rT66written_in(T66 *C){
  744. T0 * R=NULL;
  745. T0 * _sp=NULL;
  746. _sp=(C)->_start_position;
  747. /*IF*/if (((int)_sp)) {
  748. R=((T46*)_sp)->_base_class_name;
  749. }
  750. /*FI*/return R;
  751. }
  752. T0 * rT66run_feature(T66 *C,T0 * a1){
  753. T0 * R=NULL;
  754. R=rT260get_feature((T260*)XrT58run_class(a1),(T0 *)C);
  755. return R;
  756. }
  757. int rT66standard_is_equal(T66 *C,T0 * a1){
  758. int R=0;
  759. /*IF*//*AF*/if (((T0 *)a1)==((T0 *)C)) {
  760. R=1;
  761. }
  762. else {
  763. R=!memcmp(C,a1,s[C->id]);
  764. }
  765. /*FI*/return R;
  766. }
  767. void rT66copy(T66 *C,T0 * a1){
  768. /*IF*//*AF*//*AE*/
  769. memcpy(C,a1,s[C->id]);
  770. /*FI*/}
  771. int rT66is_a(T66 *C,T0 * a1){
  772. int R=0;
  773. R=XrT58is_a(XrT58run_type((C)->_result_type),XrT58run_type(XrT68result_type(a1)));
  774. /*IF*/if (!(R)) {
  775. /*UT*/(T45*)oRBC27eh;
  776. rT45add_position((C)->_start_position);
  777. rT66error(XrT68start_position(a1),(T0 *)ms1261);
  778. }
  779. /*FI*/return R;
  780. }
  781. void rT66make(T66 *C,T0* a1,T0 * a2){
  782. C->_to_string=a1;
  783. C->_start_position=a2;
  784. C->_to_key=rT66clone(C,(C)->_to_string);
  785. rT7append((T7*)(C)->_to_key,(T0 *)ms85);
  786. }
  787. void rT48set_with(T48 *C,T0 * a1){
  788. C->_start_position=((T48*)a1)->_start_position;
  789. rT48set_to_string(C,((T48*)a1)->_to_string);
  790. }
  791. int rT48is_subclass_of(T48 *C,T0 * a1){
  792. int R=0;
  793. /*IF*/if (((T0 *)(T0 *)ms183)==((T0 *)((T48*)a1)->_to_string)) {
  794. R=1;
  795. }
  796.  else if (((T0 *)(T0 *)ms185)==((T0 *)((T48*)a1)->_to_string)) {
  797. }
  798. else {
  799. R=rT50is_subclass_of((T50*)rT48base_class(C),rT48base_class((T48*)a1));
  800. }
  801. /*FI*/return R;
  802. }
  803. int rT48frozen_id(T48 *C){
  804. int R=0;
  805. /*IF*/if (((T0 *)(C)->_to_string)==((T0 *)(T0 *)ms184)) {
  806. R=1;
  807. }
  808.  else if (((T0 *)(C)->_to_string)==((T0 *)(T0 *)ms194)) {
  809. R=2;
  810. }
  811.  else if (((T0 *)(C)->_to_string)==((T0 *)(T0 *)ms191)) {
  812. R=3;
  813. }
  814.  else if (((T0 *)(C)->_to_string)==((T0 *)(T0 *)ms196)) {
  815. R=4;
  816. }
  817.  else if (((T0 *)(C)->_to_string)==((T0 *)(T0 *)ms198)) {
  818. R=5;
  819. }
  820.  else if (((T0 *)(C)->_to_string)==((T0 *)(T0 *)ms189)) {
  821. R=6;
  822. }
  823.  else if (((T0 *)(C)->_to_string)==((T0 *)(T0 *)ms188)) {
  824. R=7;
  825. }
  826.  else if (((T0 *)(C)->_to_string)==((T0 *)(T0 *)ms186)) {
  827. R=8;
  828. }
  829. /*FI*/return R;
  830. }
  831. void rT48error(/*C*/T0 * a1,T0* a2){
  832. /*UT*/(T45*)oRBC27eh;
  833. rT45add_position(a1);
  834. rT45error((T45*)oRBC27eh,a2);
  835. }
  836. T0* rT48clone(T48 *C,T0* a1){
  837. T0* R=NULL;
  838. /*IF*/if (((int)a1)) {
  839. R=(T0 *)new(a1->id);
  840. AF_1
  841. XrT28copy(R,a1);
  842. AF_0
  843. }
  844. /*FI*/return R;
  845. }
  846. T0* rT48to_key(T48 *C){
  847. T0* R=NULL;
  848. R=(C)->_to_string;
  849. return R;
  850. }
  851. T0*oRBC48special_names;
  852. int ofBC48names_memory=0;
  853. T0*oRBC48names_memory;
  854. T0* rT48names_memory(/*C*/void){
  855. T0* R=NULL;
  856. if (ofBC48names_memory==0){
  857. ofBC48names_memory=1;
  858. {T41 *n=((T41*)new(41));
  859. rT41make(n,1,256);
  860. R=(T0 *)n;}
  861. rT41copy((T41*)R,oRBC48special_names);
  862. oRBC48names_memory=R;}
  863. return oRBC48names_memory;}
  864. T0* rT48to_err_msg(T48 *C){
  865. T0* R=NULL;
  866. {T7 *n=((T7*)new(7));
  867. rT7copy(n,(T0 *)ms458);
  868. R=(T0 *)n;}
  869. rT7append((T7*)R,(C)->_to_string);
  870. return R;
  871. }
  872. T0* rT48to_err_msg2(T48 *C){
  873. T0* R=NULL;
  874. T0 * _c=NULL;
  875. R=rT48to_err_msg(C);
  876. /*IF*/if (!(/*(IRF4*/((T51*)oRBC27eiffel_parser)->_is_running/*)*/)) {
  877. _c=rT48base_class(C);
  878. /*IF*/if (((int)_c)) {
  879. rT7append((T7*)R,(T0 *)ms459);
  880. rT7append((T7*)R,((T50*)_c)->_path);
  881. rT7append((T7*)R,(T0 *)ms460);
  882. }
  883. /*FI*/}
  884. /*FI*/return R;
  885. }
  886. T0 * rT48base_class(T48 *C){
  887. T0 * R=NULL;
  888. R=rT52base_class((T52*)oRBC27small_eiffel,(T0 *)C);
  889. return R;
  890. }
  891. void rT48copy(T48 *C,T0 * a1){
  892. /*IF*//*AF*//*AE*/
  893. memcpy(C,a1,s[C->id]);
  894. /*FI*/}
  895. int rT48is_a(T48 *C,T0 * a1){
  896. int R=0;
  897. T0 * _bc2=NULL;
  898. T0 * _bc1=NULL;
  899. T0* _to_string2=NULL;
  900. _to_string2=((T48*)a1)->_to_string;
  901. /*IF*/if (((T0 *)(T0 *)ms183)==((T0 *)_to_string2)) {
  902. R=1;
  903. }
  904.  else if (((T0 *)(C)->_to_string)==((T0 *)_to_string2)) {
  905. R=1;
  906. }
  907.  else if (((T0 *)(T0 *)ms185)==((T0 *)_to_string2)) {
  908. }
  909. else {
  910. _bc1=rT48base_class(C);
  911. _bc2=rT48base_class((T48*)a1);
  912. /*IF*/if (!(_bc1)) {
  913. /*UT*/(T45*)oRBC27eh;
  914. rT45append((T0 *)ms1124);
  915. /*UT*/(T45*)oRBC27eh;
  916. rT45append((C)->_to_string);
  917. rT48error((C)->_start_position,(T0 *)ms38);
  918. }
  919.  else if (!(_bc2)) {
  920. /*UT*/(T45*)oRBC27eh;
  921. rT45append((T0 *)ms1125);
  922. /*UT*/(T45*)oRBC27eh;
  923. rT45append(_to_string2);
  924. rT48error((C)->_start_position,(T0 *)ms38);
  925. }
  926. else {
  927. R=rT50is_subclass_of((T50*)_bc1,_bc2);
  928. }
  929. /*FI*/}
  930. /*FI*/return R;
  931. }
  932. void rT48make_unknown(T48 *C){
  933. {T46 *n=((T46*)new(46));
  934. rT46with(n,1,1,(T0 *)C);
  935. C->_start_position=(T0 *)n;}
  936. C->_to_string=(T0 *)ms79;
  937. }
  938. void rT48make(T48 *C,T0* a1,T0 * a2){
  939. C->_start_position=a2;
  940. rT48set_to_string(C,a1);
  941. }
  942. void rT48set_to_string(T48 *C,T0* a1){
  943. T0* _mem=NULL;
  944. int _i=0;
  945. _mem=rT48names_memory();
  946. rT7copy((T7*)(T0 *)ms201,a1);
  947. rT7to_upper((T7*)(T0 *)ms201);
  948. _i=rT41index_of((T41*)_mem,(T0 *)ms201);
  949. /*IF*/if ((_i)<=(((T41*)_mem)->_upper)) {
  950. C->_to_string=rT41item((T41*)_mem,_i);
  951. }
  952. else {
  953. C->_to_string=rT48clone(C,(T0 *)ms201);
  954. rT41add_last((T41*)_mem,(C)->_to_string);
  955. }
  956. /*FI*/}
  957. T0 * rT118name_of(T118 *C,T0 * a1,T0 * a2){
  958. T0 * R=NULL;
  959. /*IF*/if (!((C)->_rename_list)) {
  960. R=rT50name_of((T50*)XrT58base_class((C)->_type),a1,a2);
  961. }
  962. else {
  963. R=rT50name_of((T50*)XrT58base_class((C)->_type),a1,rT120to_new_name((T120*)(C)->_rename_list,a2));
  964. }
  965. /*FI*/return R;
  966. }
  967. void rT118set_undefine(T118 *C,T0* a1){
  968. {T128 *n=((T128*)new(128));
  969. rT128make(n,a1);
  970. C->_undefine_list=(T0 *)n;}
  971. }
  972. void rT118fatal_error(/*C*/T0* a1){
  973. rT45fatal_error((T45*)oRBC27eh,a1);
  974. }
  975. T0 * rT118clients_for(T118 *C,T0 * a1,T0 * a2){
  976. T0 * R=NULL;
  977. /*IF*/if (rT48is_a((T48*)XrT58base_class_name((C)->_type),XrT62base_class_name(a2))) {
  978. /*IF*/if (!((C)->_export_list)) {
  979. R=rT50clients_for((T50*)XrT58base_class((C)->_type),a1,a2);
  980. }
  981. else {
  982. R=rT122clients_for((T122*)(C)->_export_list,a1);
  983. /*IF*/if (!(R)) {
  984. /*IF*/if (!((C)->_rename_list)) {
  985. R=rT50clients_for((T50*)XrT58base_class((C)->_type),a1,a2);
  986. }
  987. else {
  988. R=rT50clients_for((T50*)XrT58base_class((C)->_type),rT120to_old_name((T120*)(C)->_rename_list,a1),a2);
  989. }
  990. /*FI*/}
  991. else {
  992. /*UT*/(T45*)oRBC27eh;
  993. rT45add_position(rT118start_position(C));
  994. /*UT*/(T45*)oRBC27eh;
  995. rT45add_position(XrT67start_position(a1));
  996. /*UT*/(T45*)oRBC27eh;
  997. rT45add_position(XrT62start_position(a2));
  998. rT45error((T45*)oRBC27eh,(T0 *)ms1126);
  999. }
  1000. /*FI*/}
  1001. /*FI*/}
  1002. /*FI*/return R;
  1003. }
  1004. int rT118has_redefine(T118 *C,T0 * a1){
  1005. int R=0;
  1006. /*IF*/if (((int)(C)->_redefine_list)) {
  1007. R=rT128has((T128*)(C)->_redefine_list,a1);
  1008. }
  1009. /*FI*/return R;
  1010. }
  1011. T0 * rT118start_position(T118 *C){
  1012. T0 * R=NULL;
  1013. R=XrT58start_position((C)->_type);
  1014. return R;
  1015. }
  1016. int rT118has_select(T118 *C,T0 * a1){
  1017. int R=0;
  1018. /*IF*/if (((int)(C)->_select_list)) {
  1019. R=rT128has((T128*)(C)->_select_list,a1);
  1020. }
  1021. /*FI*/return R;
  1022. }
  1023. void rT118collect_for(T118 *C,int a1,T0 * a2){
  1024. T0 * _fn2=NULL;
  1025. /*IF*/if ((!((C)->_rename_list))||(!(rT120affect((T120*)(C)->_rename_list,a2)))) {
  1026. rT50collect_for((T50*)XrT58base_class((C)->_type),a1,a2);
  1027. }
  1028. else {
  1029. _fn2=rT120to_old_name((T120*)(C)->_rename_list,a2);
  1030. /*IF*/if (((T0 *)_fn2)!=((T0 *)a2)) {
  1031. rT50collect_for((T50*)XrT58base_class((C)->_type),a1,_fn2);
  1032. }
  1033. /*FI*/}
  1034. /*FI*/}
  1035. int rT118has_undefine(T118 *C,T0 * a1){
  1036. int R=0;
  1037. /*IF*/if (((int)(C)->_undefine_list)) {
  1038. R=rT128has((T128*)(C)->_undefine_list,a1);
  1039. }
  1040. /*FI*/return R;
  1041. }
  1042. void rT118get_started(T118 *C,T0 * a1){
  1043. int _all_check=0;
  1044. T0 * _fn2=NULL;
  1045. T0 * _fn=NULL;
  1046. T0 * _pbc=NULL;
  1047. T0 * _wbc=NULL;
  1048. int _i=0;
  1049. _all_check=rT44all_check((T44*)oRBC27eiffel_run_control);
  1050. C->_parent_list=a1;
  1051. _pbc=XrT58base_class((C)->_type);
  1052. _wbc=((T131*)(C)->_parent_list)->_base_class;
  1053. /*IF*/if ((_all_check)&&(((int)(C)->_rename_list))) {
  1054. rT120get_started((T120*)(C)->_rename_list,_pbc);
  1055. }
  1056. /*FI*//*IF*/if ((_all_check)&&(((int)(C)->_undefine_list))) {
  1057. _i=rT128count((T128*)(C)->_undefine_list);
  1058. while (!((_i)==(0))) {
  1059. _fn=rT128item((T128*)(C)->_undefine_list,_i);
  1060. /*IF*/if (!(rT50has((T50*)_pbc,_fn))) {
  1061. /*UT*/(T45*)oRBC27eh;
  1062. rT45add_position(XrT67start_position(_fn));
  1063. rT118fatal_error((T0 *)ms421);
  1064. }
  1065. /*FI*/_i=(_i)-(1);
  1066. }
  1067. }
  1068. /*FI*//*IF*/if ((_all_check)&&(((int)(C)->_redefine_list))) {
  1069. _i=rT128count((T128*)(C)->_redefine_list);
  1070. while (!((_i)==(0))) {
  1071. _fn=rT128item((T128*)(C)->_redefine_list,_i);
  1072. /*IF*/if (!(rT50proper_has((T50*)_wbc,_fn))) {
  1073. /*UT*/(T45*)oRBC27eh;
  1074. rT45add_position(XrT67start_position(_fn));
  1075. rT118fatal_error((T0 *)ms422);
  1076. }
  1077. /*FI*//*IF*/if (!(rT50has((T50*)_pbc,_fn))) {
  1078. /*UT*/(T45*)oRBC27eh;
  1079. rT45add_position(XrT67start_position(_fn));
  1080. rT118fatal_error((T0 *)ms423);
  1081. }
  1082. /*FI*//*IF*/if (((int)(C)->_rename_list)) {
  1083. _fn2=rT120to_new_name((T120*)(C)->_rename_list,_fn);
  1084. /*IF*/if (((T0 *)_fn2)!=((T0 *)_fn)) {
  1085. /*UT*/(T45*)oRBC27eh;
  1086. rT45add_position(XrT67start_position(_fn));
  1087. /*UT*/(T45*)oRBC27eh;
  1088. rT45add_position(XrT67start_position(_fn2));
  1089. rT118fatal_error((T0 *)ms424);
  1090. }
  1091. /*FI*/}
  1092. /*FI*/_i=(_i)-(1);
  1093. }
  1094. }
  1095. /*FI*/}
  1096. T0*oRBC118forbidden_parent_list;
  1097. T0 * rT118look_up_for(T118 *C,T0 * a1,T0 * a2){
  1098. T0 * R=NULL;
  1099. T0 * _f=NULL;
  1100. T0 * _fn2=NULL;
  1101. /*IF*/if ((!((C)->_rename_list))||(!(rT120affect((T120*)(C)->_rename_list,a2)))) {
  1102. _f=XrT58look_up_for((C)->_type,a1,a2);
  1103. /*IF*/if (rT118has_undefine(C,a2)) {
  1104. R=XrT62try_to_undefine(_f,a2,((T131*)(C)->_parent_list)->_base_class);
  1105. }
  1106. else {
  1107. R=_f;
  1108. }
  1109. /*FI*/}
  1110. else {
  1111. _fn2=rT120to_old_name((T120*)(C)->_rename_list,a2);
  1112. /*IF*/if (((T0 *)_fn2)!=((T0 *)a2)) {
  1113. _f=XrT58look_up_for((C)->_type,a1,_fn2);
  1114. /*IF*/if (rT118has_undefine(C,_fn2)) {
  1115. R=XrT62try_to_undefine(_f,_fn2,((T131*)(C)->_parent_list)->_base_class);
  1116. }
  1117. else {
  1118. R=_f;
  1119. }
  1120. /*FI*/}
  1121. else {
  1122. _f=XrT58look_up_for((C)->_type,a1,a2);
  1123. /*IF*/if (!(_f)) {
  1124. /*UT*/(T45*)oRBC27eh;
  1125. rT45add_position(XrT67start_position(a2));
  1126. rT118fatal_error((T0 *)ms486);
  1127. }
  1128. /*FI*/}
  1129. /*FI*/}
  1130. /*FI*/return R;
  1131. }
  1132. void rT118add_rename(T118 *C,T0 * a1){
  1133. /*IF*/if (!((C)->_rename_list)) {
  1134. {T120 *n=((T120*)new(120));
  1135. /*(IRF3*/((n)->_list)=(ma(121,0,1,a1));
  1136. /*)*/C->_rename_list=(T0 *)n;}
  1137. }
  1138. else {
  1139. rT120add_last((T120*)(C)->_rename_list,a1);
  1140. }
  1141. /*FI*/}
  1142. void rT118copy(T118 *C,T0 * a1){
  1143. /*IF*//*AF*//*AE*/
  1144. memcpy(C,a1,s[C->id]);
  1145. /*FI*/}
  1146. int rT118is_a(T118 *C,T0 * a1){
  1147. int R=0;
  1148. R=XrT58is_a((C)->_type,a1);
  1149. return R;
  1150. }
  1151. int rT118has(T118 *C,T0 * a1){
  1152. int R=0;
  1153. R=rT50has((T50*)XrT58base_class((C)->_type),a1);
  1154. return R;
  1155. }
  1156. void rT118set_redefine(T118 *C,T0* a1){
  1157. {T128 *n=((T128*)new(128));
  1158. rT128make(n,a1);
  1159. C->_redefine_list=(T0 *)n;}
  1160. }
  1161. void rT118set_select(T118 *C,T0* a1){
  1162. {T128 *n=((T128*)new(128));
  1163. rT128make(n,a1);
  1164. C->_select_list=(T0 *)n;}
  1165. }
  1166. void rT118make(T118 *C,T0 * a1){
  1167. C->_type=a1;
  1168. /*IF*/if (rT41fast_has((T41*)oRBC118forbidden_parent_list,XrT58written_mark((C)->_type))) {
  1169. /*UT*/(T45*)oRBC27eh;
  1170. rT45add_position(XrT58start_position((C)->_type));
  1171. /*UT*/(T45*)oRBC27eh;
  1172. rT45append((T0 *)ms226);
  1173. /*UT*/(T45*)oRBC27eh;
  1174. rT45append(XrT58written_mark((C)->_type));
  1175. rT118fatal_error((T0 *)ms227);
  1176. }
  1177. /*FI*/}
  1178. void rT126warning(/*C*/T0 * a1,T0* a2){
  1179. /*UT*/(T45*)oRBC27eh;
  1180. rT45add_position(a1);
  1181. rT45warning((T45*)oRBC27eh,a2);
  1182. }
  1183. int rT126index_of(T126 *C,T0 * a1){
  1184. int R=0;
  1185. T0* _to_string=NULL;
  1186. _to_string=XrT49to_string(a1);
  1187. R=((T125*)(C)->_list)->_upper;
  1188. while (!(((R)==(0))||(((T0 *)_to_string)==((T0 *)((T48*)rT125item((T125*)(C)->_list,R))->_to_string)))) {
  1189. R=(R)-(1);
  1190. }
  1191. return R;
  1192. }
  1193. void rT126copy(T126 *C,T0 * a1){
  1194. /*IF*//*AF*//*AE*/
  1195. memcpy(C,a1,s[C->id]);
  1196. /*FI*/}
  1197. int rT126gives_permission_to(T126 *C,T0 * a1){
  1198. int R=0;
  1199. int _i=0;
  1200. /*IF*/if ((rT126index_of(C,a1))>(0)) {
  1201. R=1;
  1202. }
  1203. else {
  1204. _i=((T125*)(C)->_list)->_upper;
  1205. while (!((R)||((_i)==(0)))) {
  1206. R=rT48is_subclass_of((T48*)a1,rT125item((T125*)(C)->_list,_i));
  1207. _i=(_i)-(1);
  1208. }
  1209. }
  1210. /*FI*/return R;
  1211. }
  1212. void rT126make(T126 *C,T0* a1){
  1213. int _i2=0;
  1214. int _i=0;
  1215. C->_list=a1;
  1216. _i=((T125*)(C)->_list)->_upper;
  1217. while (!((_i)==(0))) {
  1218. _i2=rT126index_of(C,rT125item((T125*)(C)->_list,_i));
  1219. /*IF*/if ((_i2)!=(_i)) {
  1220. /*UT*/(T45*)oRBC27eh;
  1221. rT45add_position(((T48*)rT125item((T125*)(C)->_list,_i2))->_start_position);
  1222. rT126warning(((T48*)rT125item((T125*)(C)->_list,_i))->_start_position,(T0 *)ms237);
  1223. }
  1224. /*FI*/_i=(_i)-(1);
  1225. }
  1226. }
  1227. T0 * rT131name_of(T131 *C,T0 * a1,T0 * a2){
  1228. T0 * R=NULL;
  1229. T0 * _bc=NULL;
  1230. T0 * _p=NULL;
  1231. int _i=0;
  1232. /*IF*/if (!((C)->_list)) {
  1233. R=rT50name_of((T50*)rT131class_with((T0 *)ms183),a1,a2);
  1234. }
  1235. else {
  1236. _i=1;
  1237. while (!(((int)R))) {
  1238. _p=rT130item((T130*)(C)->_list,_i);
  1239. _bc=XrT58base_class(((T118*)_p)->_type);
  1240. /*IF*/if ((((T0 *)_bc)==((T0 *)a1))||(rT50is_subclass_of((T50*)_bc,a1))) {
  1241. R=rT118name_of((T118*)_p,a1,a2);
  1242. }
  1243. else {
  1244. _i=(_i)+(1);
  1245. }
  1246. /*FI*/}
  1247. }
  1248. /*FI*/return R;
  1249. }
  1250. void rT131fatal_error(/*C*/T0* a1){
  1251. rT45fatal_error((T45*)oRBC27eh,a1);
  1252. }
  1253. int rT131count(T131 *C){
  1254. int R=0;
  1255. R=((T130*)(C)->_list)->_upper;
  1256. return R;
  1257. }
  1258. void rT131error(/*C*/T0 * a1,T0* a2){
  1259. /*UT*/(T45*)oRBC27eh;
  1260. rT45add_position(a1);
  1261. rT45error((T45*)oRBC27eh,a2);
  1262. }
  1263. T0 * rT131clients_for(T131 *C,T0 * a1,T0 * a2){
  1264. T0 * R=NULL;
  1265. T0 * _c=NULL;
  1266. int _i=0;
  1267. _i=1;
  1268. while (!((_i)>(((T130*)(C)->_list)->_upper))) {
  1269. _c=rT118clients_for((T118*)rT130item((T130*)(C)->_list,_i),a1,a2);
  1270. /*IF*/if (!(_c)) {
  1271. }
  1272.  else if (!(R)) {
  1273. R=_c;
  1274. }
  1275. else {
  1276. R=rT123merge_with((T123*)R,_c,a1,a2);
  1277. }
  1278. /*FI*/_i=(_i)+(1);
  1279. }
  1280. return R;
  1281. }
  1282. int rT131has_parent(T131 *C,T0 * a1){
  1283. int R=0;
  1284. T0 * _bc=NULL;
  1285. int _i=0;
  1286. int _ne=0;
  1287. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1288. _i=1;
  1289. while (!(((R)||((_i)>(((T130*)(C)->_list)->_upper)))||(((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))>(0)))) {
  1290. _bc=XrT58base_class(((T118*)rT130item((T130*)(C)->_list,_i))->_type);
  1291. /*IF*/if (((int)_bc)) {
  1292. /*IF*/if (((T0 *)_bc)==((T0 *)rT56first((T56*)oRBC50visited))) {
  1293. /*UT*/(T45*)oRBC27eh;
  1294. rT45append((T0 *)ms468);
  1295. /*UT*/(T45*)oRBC27eh;
  1296. rT45append(((T48*)((T50*)rT56first((T56*)oRBC50visited))->_base_class_name)->_to_string);
  1297. /*UT*/(T45*)oRBC27eh;
  1298. rT45append((T0 *)ms469);
  1299. /*UT*/(T45*)oRBC27eh;
  1300. rT45append(((T48*)rT131base_class_name(C))->_to_string);
  1301. rT131error(XrT58start_position(((T118*)rT130item((T130*)(C)->_list,_i))->_type),(T0 *)ms38);
  1302. }
  1303.  else if (((T0 *)a1)==((T0 *)_bc)) {
  1304. R=1;
  1305. }
  1306.  else if (rT56fast_has((T56*)oRBC50visited,_bc)) {
  1307. }
  1308. else {
  1309. R=rT50is_subclass_of_aux((T50*)_bc,a1);
  1310. }
  1311. /*FI*/}
  1312. /*FI*/_i=(_i)+(1);
  1313. }
  1314. return R;
  1315. }
  1316. int rT131has_redefine(T131 *C,T0 * a1){
  1317. int R=0;
  1318. int _i=0;
  1319. _i=1;
  1320. while (!((R)||((_i)>(((T130*)(C)->_list)->_upper)))) {
  1321. R=rT118has_redefine((T118*)rT130item((T130*)(C)->_list,_i),a1);
  1322. _i=(_i)+(1);
  1323. }
  1324. return R;
  1325. }
  1326. T0 * rT131super(T131 *C){
  1327. T0 * R=NULL;
  1328. R=rT130first((T130*)(C)->_list);
  1329. return R;
  1330. }
  1331. void rT131collect_for(T131 *C,int a1,T0 * a2){
  1332. int _i=0;
  1333. _i=1;
  1334. while (!((_i)>(((T130*)(C)->_list)->_upper))) {
  1335. rT118collect_for((T118*)rT130item((T130*)(C)->_list,_i),a1,a2);
  1336. _i=(_i)+(1);
  1337. }
  1338. }
  1339. void rT131collect_invariant(T131 *C,T0 * a1){
  1340. int _i=0;
  1341. _i=1;
  1342. while (!((_i)>(((T130*)(C)->_list)->_upper))) {
  1343. rT50collect_invariant((T50*)XrT58base_class(((T118*)rT130item((T130*)(C)->_list,_i))->_type),a1);
  1344. _i=(_i)+(1);
  1345. }
  1346. }
  1347. void rT131get_started(T131 *C){
  1348. int _i=0;
  1349. _i=1;
  1350. while (!((_i)>(((T130*)(C)->_list)->_upper))) {
  1351. rT118get_started((T118*)rT130item((T130*)(C)->_list,_i),(T0 *)C);
  1352. _i=(_i)+(1);
  1353. }
  1354. }
  1355. T0 * rT131look_up_for(T131 *C,T0 * a1,T0 * a2){
  1356. T0 * R=NULL;
  1357. T0 * _p_result=NULL;
  1358. T0 * _p_f=NULL;
  1359. T0 * _f=NULL;
  1360. int _i=0;
  1361. int _ne=0;
  1362. _ne=/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/;
  1363. _i=1;
  1364. while (!(((_i)>(((T130*)(C)->_list)->_upper))||(((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)-(_ne))>(0)))) {
  1365. _p_f=rT130item((T130*)(C)->_list,_i);
  1366. _i=(_i)+(1);
  1367. _f=rT118look_up_for((T118*)_p_f,a1,a2);
  1368. /*IF*/if (!(_f)) {
  1369. }
  1370.  else if (!(R)) {
  1371. R=_f;
  1372. _p_result=_p_f;
  1373. }
  1374.  else if (((T0 *)R)==((T0 *)_f)) {
  1375. }
  1376. else {
  1377. /*IF*/if ((rT118has_select((T118*)_p_result,a2))&&(rT118has_select((T118*)_p_f,a2))) {
  1378. /*UT*/(T45*)oRBC27eh;
  1379. rT45add_position(rT118start_position((T118*)_p_result));
  1380. /*UT*/(T45*)oRBC27eh;
  1381. rT45append((T0 *)ms487);
  1382. /*UT*/(T45*)oRBC27eh;
  1383. rT45append(XrT67to_string(a2));
  1384. rT131error(rT118start_position((T118*)_p_f),(T0 *)ms38);
  1385. R=NULL;
  1386. }
  1387. /*FI*//*IF*/if (rT118has_select((T118*)_p_f,a2)) {
  1388. /*IF*/if (XrT62is_merge_with(_f,R,a1)) {
  1389. R=_f;
  1390. _p_result=_p_f;
  1391. }
  1392. else {
  1393. /*UT*/(T45*)oRBC27eh;
  1394. rT45add_position(XrT62start_position(R));
  1395. rT131error(XrT62start_position(_f),(T0 *)ms495);
  1396. R=NULL;
  1397. }
  1398. /*FI*/}
  1399.  else if (XrT62is_deferred(_f)) {
  1400. /*IF*/if (XrT62is_merge_with(R,_f,a1)) {
  1401. }
  1402. else {
  1403. /*UT*/(T45*)oRBC27eh;
  1404. rT45add_position(XrT62start_position(R));
  1405. rT131error(XrT62start_position(_f),(T0 *)ms496);
  1406. R=NULL;
  1407. }
  1408. /*FI*/}
  1409.  else if (XrT62is_deferred(R)) {
  1410. /*IF*/if (XrT62is_merge_with(_f,R,a1)) {
  1411. R=_f;
  1412. _p_result=_p_f;
  1413. }
  1414. else {
  1415. /*UT*/(T45*)oRBC27eh;
  1416. rT45add_position(XrT62start_position(R));
  1417. rT131error(XrT62start_position(_f),(T0 *)ms497);
  1418. R=NULL;
  1419. }
  1420. /*FI*/}
  1421. else {
  1422. /*UT*/(T45*)oRBC27eh;
  1423. rT45add_position(rT118start_position((T118*)_p_f));
  1424. /*UT*/(T45*)oRBC27eh;
  1425. rT45add_position(rT118start_position((T118*)_p_result));
  1426. /*UT*/(T45*)oRBC27eh;
  1427. rT45add_position(XrT62start_position(R));
  1428. /*UT*/(T45*)oRBC27eh;
  1429. rT45add_position(XrT62start_position(_f));
  1430. /*UT*/(T45*)oRBC27eh;
  1431. rT45append((T0 *)ms498);
  1432. rT45print_as_fatal_error((T45*)oRBC27eh);
  1433. }
  1434. /*FI*/}
  1435. /*FI*/}
  1436. return R;
  1437. }
  1438. T0 * rT131parent_for(T131 *C,T0 * a1){
  1439. T0 * R=NULL;
  1440. T0 * _pbc=NULL;
  1441. T0 * _p=NULL;
  1442. int _i=0;
  1443. _i=1;
  1444. while (!((_i)>(((T130*)(C)->_list)->_upper))) {
  1445. _p=rT130item((T130*)(C)->_list,_i);
  1446. _pbc=XrT58base_class(((T118*)_p)->_type);
  1447. /*IF*/if (((T0 *)_pbc)==((T0 *)a1)) {
  1448. /*IF*/if (!(R)) {
  1449. R=_p;
  1450. }
  1451.  else if (((T0 *)R)==((T0 *)_p)) {
  1452. }
  1453. else {
  1454. /*UT*/(T45*)oRBC27eh;
  1455. rT45add_position((C)->_start_position);
  1456. rT131fatal_error((T0 *)ms1440);
  1457. }
  1458. /*FI*/}
  1459.  else if (rT50is_subclass_of((T50*)_pbc,a1)) {
  1460. R=rT50parent((T50*)_pbc,a1);
  1461. }
  1462. /*FI*/_i=(_i)+(1);
  1463. }
  1464. return R;
  1465. }
  1466. T0 * rT131class_with(/*C*/T0* a1){
  1467. T0 * R=NULL;
  1468. R=(/*UT*/(T52*)oRBC27small_eiffel,
  1469. rT52get_class(a1));
  1470. return R;
  1471. }
  1472. T0 * rT131base_class_name(T131 *C){
  1473. T0 * R=NULL;
  1474. R=((T50*)(C)->_base_class)->_base_class_name;
  1475. return R;
  1476. }
  1477. void rT131copy(T131 *C,T0 * a1){
  1478. /*IF*//*AF*//*AE*/
  1479. memcpy(C,a1,s[C->id]);
  1480. /*FI*/}
  1481. int rT131is_a(T131 *C,T0 * a1){
  1482. int R=0;
  1483. int _i=0;
  1484. _i=1;
  1485. while (!((R)||((_i)>(((T130*)(C)->_list)->_upper)))) {
  1486. R=rT118is_a((T118*)rT130item((T130*)(C)->_list,_i),a1);
  1487. /*IF*/if (!(R)) {
  1488. /*(IRF3*//*UT*/(T45*)oRBC27eh;
  1489. /*(IRF3*/(((T7*)oRBC45explanation)->_count)=(0);
  1490. /*)*/rT47clear((T47*)rT45positions());
  1491. /*)*/}
  1492. /*FI*/_i=(_i)+(1);
  1493. }
  1494. return R;
  1495. }
  1496. int rT131has(T131 *C,T0 * a1){
  1497. int R=0;
  1498. int _i=0;
  1499. _i=1;
  1500. while (!((R)||((_i)>(((T130*)(C)->_list)->_upper)))) {
  1501. R=rT118has((T118*)rT130item((T130*)(C)->_list,_i),a1);
  1502. _i=(_i)+(1);
  1503. }
  1504. return R;
  1505. }
  1506. void rT131make(T131 *C,T0 * a1,T0 * a2,T0 * a3,T0* a4){
  1507. C->_base_class=a1;
  1508. C->_heading_comment=a3;
  1509. C->_start_position=a2;
  1510. C->_list=a4;
  1511. }
  1512. void rT248warning(/*C*/T0 * a1,T0* a2){
  1513. /*UT*/(T45*)oRBC27eh;
  1514. rT45add_position(a1);
  1515. rT45warning((T45*)oRBC27eh,a2);
  1516. }
  1517. T0 * rT248current_type(T248 *C){
  1518. T0 * R=NULL;
  1519. /*IF*/if (((int)(C)->_run_compound)) {
  1520. R=((T140*)(C)->_run_compound)->_current_type;
  1521. }
  1522. /*FI*/return R;
  1523. }
  1524. void rT248fatal_error(/*C*/T0* a1){
  1525. rT45fatal_error((T45*)oRBC27eh,a1);
  1526. }
  1527. T0 * rT248to_runnable(T248 *C,T0 * a1){
  1528. T0 * R=NULL;
  1529. T0 * _e=NULL;
  1530. T0 * _right_run_type=NULL;
  1531. T0 * _left_run_type=NULL;
  1532. /*IF*/if (!((C)->_run_compound)) {
  1533. C->_run_compound=a1;
  1534. _e=XrT68to_runnable((C)->_left_side,rT248current_type(C));
  1535. /*IF*/if (!(_e)) {
  1536. rT248error(XrT68start_position((C)->_left_side),(T0 *)ms1259);
  1537. }
  1538. else {
  1539. C->_left_side=_e;
  1540. }
  1541. /*FI*/_e=XrT68to_runnable((C)->_right_side,rT248current_type(C));
  1542. /*IF*/if (!(_e)) {
  1543. rT248error(XrT68start_position((C)->_right_side),(T0 *)ms1260);
  1544. }
  1545. else {
  1546. C->_right_side=_e;
  1547. }
  1548. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1549. /*IF*/if (!(XrT68is_a((C)->_right_side,(C)->_left_side))) {
  1550. rT248error(XrT68start_position((C)->_left_side),(T0 *)ms1262);
  1551. }
  1552. /*FI*/}
  1553. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1554. _left_run_type=XrT58run_type(rT248left_type(C));
  1555. _right_run_type=XrT58run_type(rT248right_type(C));
  1556. /*IF*/if (XrT58is_reference(_left_run_type)) {
  1557. /*IF*/if (XrT58is_reference(_right_run_type)) {
  1558. }
  1559. else {
  1560. XrT58used_as_reference(_right_run_type);
  1561. }
  1562. /*FI*/}
  1563. else {
  1564. /*IF*/if (XrT58is_reference(_right_run_type)) {
  1565. rT248warning(XrT68start_position((C)->_left_side),(T0 *)ms1263);
  1566. }
  1567. else {
  1568. }
  1569. /*FI*/}
  1570. /*FI*/}
  1571. /*FI*//*IF*/if ((/*(IRF4*/((T45*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  1572. R=(T0 *)C;
  1573. }
  1574. /*FI*/}
  1575. else {
  1576. {T248 *n=((T248*)new(248));
  1577. rT248make(n,(C)->_left_side,(C)->_right_side);
  1578. R=(T0 *)n;}
  1579. R=rT248to_runnable((T248*)R,a1);
  1580. }
  1581. /*FI*/return R;
  1582. }
  1583. T0 * rT248left_type(T248 *C){
  1584. T0 * R=NULL;
  1585. R=XrT68result_type((C)->_left_side);
  1586. return R;
  1587. }
  1588. void rT248error(/*C*/T0 * a1,T0* a2){
  1589. /*UT*/(T45*)oRBC27eh;
  1590. rT45add_position(a1);
  1591. rT45error((T45*)oRBC27eh,a2);
  1592. }
  1593. T0 * rT248add_comment(T248 *C,T0 * a1){
  1594. T0 * R=NULL;
  1595. /*IF*/if ((!(a1))||((rT59count((T59*)a1))==(0))) {
  1596. R=(T0 *)C;
  1597. }
  1598. /*AF*/else {
  1599. {T216 *n=((T216*)new(216));
  1600. rT216make(n,(T0 *)C,a1);
  1601. R=(T0 *)n;}}
  1602. /*FI*/return R;
  1603. }
  1604. T0 * rT248start_position(T248 *C){
  1605. T0 * R=NULL;
  1606. R=XrT68start_position((C)->_left_side);
  1607. return R;
  1608. }
  1609. int rT248use_current(T248 *C){
  1610. int R=0;
  1611. R=XrT68use_current((C)->_left_side);
  1612. R=(R)||(XrT68use_current((C)->_right_side));
  1613. return R;
  1614. }
  1615. void rT248compile_to_c(T248 *C){
  1616. int _trace_instruction=0;
  1617. T0 * _right_run_type=NULL;
  1618. T0 * _left_run_type=NULL;
  1619. _trace_instruction=!(XrT68c_simple((C)->_right_side));
  1620. /*IF*/if (_trace_instruction) {
  1621. rT40rs_push_position((T40*)oRBC27cpp,'1',rT248start_position(C));
  1622. }
  1623. /*FI*/_left_run_type=XrT58run_type(rT248left_type(C));
  1624. _right_run_type=XrT58run_type(rT248right_type(C));
  1625. /*IF*/if (XrT58is_reference(_left_run_type)) {
  1626. /*IF*/if (XrT58is_reference(_right_run_type)) {
  1627. XrT68compile_to_c((C)->_left_side);
  1628. rT40put_character((T40*)oRBC27cpp,'\75');
  1629. /*IF*/if (XrT68is_current((C)->_right_side)) {
  1630. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1326);
  1631. }
  1632. /*FI*//*IF*/if (XrT68is_manifest_string((C)->_right_side)) {
  1633. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1327);
  1634. }
  1635. /*FI*/XrT68compile_to_c((C)->_right_side);
  1636. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1328);
  1637. }
  1638. else {
  1639. XrT68compile_to_c((C)->_left_side);
  1640. rT40put_character((T40*)oRBC27cpp,'\75');
  1641. XrT58expanded_to_reference(_right_run_type);
  1642. rT40put_character((T40*)oRBC27cpp,'\50');
  1643. XrT68compile_to_c((C)->_right_side);
  1644. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1329);
  1645. }
  1646. /*FI*/}
  1647. else {
  1648. /*IF*/if (XrT58is_reference(_right_run_type)) {
  1649. /*UT*/(T45*)oRBC27eh;
  1650. rT45add_position(XrT68start_position((C)->_left_side));
  1651. rT248fatal_error((T0 *)ms1330);
  1652. }
  1653. else {
  1654. XrT68compile_to_c((C)->_left_side);
  1655. rT40put_character((T40*)oRBC27cpp,'\75');
  1656. XrT68compile_to_c((C)->_right_side);
  1657. rT40put_string((T40*)oRBC27cpp,(T0 *)ms1331);
  1658. }
  1659. /*FI*/}
  1660. /*FI*//*IF*/if (_trace_instruction) {
  1661. rT40rs_pop_position((T40*)oRBC27cpp);
  1662. }
  1663. /*FI*/}
  1664.